diff --git a/sympy/polys/polytools.py b/sympy/polys/polytools.py
index 9c12741236..af5710405b 100644
--- a/sympy/polys/polytools.py
+++ b/sympy/polys/polytools.py
@@ -262,13 +262,14 @@ def free_symbols(self):
         >>> Poly(x**2 + y).free_symbols
         {x, y}
         >>> Poly(x**2 + y, x).free_symbols
-        {x, y}
+        {x}
 
         """
         symbols = set([])
 
-        for gen in self.gens:
-            symbols |= gen.free_symbols
+        for i, gen in enumerate(self.gens):
+            if any(i in monom for monom in self.monoms()):
+                symbols |= gen.free_symbols
 
         return symbols | self.free_symbols_in_domain
 
